package top.infopub.mgr.cap.service;

import java.util.List;

import top.infopub.generic.GenericService;
import top.infopub.mgr.cap.domain.LookInfoDomain;
import top.infopub.mgr.cap.domain.SetupFinDomain;
import top.infopub.mgr.cap.dto.LookInfoDto;
import top.infopub.mgr.cap.vo.LookInfoBeginVo;
import top.infopub.mgr.cap.vo.SetupFinVo;
import top.infopub.mgr.common.vo.RspVo;
import top.infopub.model.cap.*;

import com.github.pagehelper.Page;
import top.infopub.security.vo.AuthorizationVO;

public interface SetupFinService extends GenericService<SetupFin, String> {

    /**
     * 根据条件查询融资立项记录
     * @param lookInfoBeginVo
     * @return
     * @see
     */
    Page<LookInfoDomain> selectByDomainWhere(Page<LookInfoDomain> page, LookInfoBeginVo lookInfoBeginVo);

    /**
     * 根据条件查询融资立项记录-我审批的
     * @param SetupFinVo
     * @return
     * @see
     */
    Page<SetupFinDomain> selectMyCheckByDomainWhere(Page<SetupFinDomain> page,
        SetupFinVo setupFinVo);

    /**
     * 添加-融资立项
     */
    void saveSetupFin(SetupFin setupFin, List<SetupFinAim> setupFinAims,
                      List<SetupFinAtt> setupFinAtts, List<SetupFinCost> setupFinCosts,
                      List<SetupFinNode> setupFinNodes);

    /**
     * 根据融资立项id查询详情
     * @param id 主键id
     * @return
     * @see
     */
    SetupFin selectById(String id);

    /**
     * 查询所有融资立项记录
     */
    List<SetupFin> selectAll(String proCode,String codes);

    RspVo queryDetailById(String id);

    RspVo saveAll(AuthorizationVO userDtl, SetupFin setupFin1, List<SetupFinancial> setupFinancials, Integer submitType,String bodyStr);

    SetupFin selectByProName(String proName);
}
